package wujinye.com.service;

import wujinye.com.model.Conference;

import java.util.List;

public interface MeetService {

    /**
     * 查找会议的信息，包括：会议id，参加会议的部门名，部门ID，会议标题，会议内容，发布会议日期，会议开始时间，会议状态，发布会议用户ID
     * 如果search或者deptName不为空，则根据条件查询符合的会议信息
     * @param search
     * @param deptName
     * @param page
     * @return
     */
    List<Conference> findMeetingList(String search, String deptName, int page);

    /**
     * 统计会议的数量
     * 如果search或者deptName不为空，则根据条件统计符合条件的会议数目
     * @param search
     * @param deptName
     * @return
     */
    long getTotalMeetings(String search, String deptName);

    /**
     * 通过会议ID查找会议信息
     * @param mId
     * @return
     */
    Conference findMeetingById(Integer mId);

    /**
     * 根据时间判断会议状态，并修改会议状态
     * @param conference
     */
    void compareTime(Conference conference);


    /**
     * 根据会议ID查找，需要参加会议的人数
     * @param mId
     * @return
     */
    long getTotalPerson(Integer mId);


    /**
     * 根据会议ID查找，未点击参加会议的人数
     * @param mId
     * @return
     */
    long getTotalAbsence(Integer mId);

    /**
     * 根据用户ID查找该用户是否参加会议（0：未参加，1：已参加）
     * @param uId
     * @param mId
     * @return
     */
    Object[] isCome(Integer uId, Integer mId);


    /**
     * 根据会议ID取消会议
     * @param mId
     */
    void cancelMeeting(Integer mId);

    /**
     * 根据会议ID和用户ID，确认参加会议
     * @param mId
     * @param uId
     */
    void joinMeeting(Integer mId, Integer uId);


    /**
     * 添加会议
     * @param userId
     * @param deptId
     * @param title
     * @param content
     * @param startTime
     */
    void addMeeting(Integer userId, String deptId, String title, String content, String startTime);
}
